//定义全局变量
$(function () {
    //定义全局变量
    window.pageSize = 5;
    window.pageNum = 1;
    window.keyword = "";
    //显示数据
    showPage();
});

function showPage() {
    $.ajax({
        url: "/cert/search/by/keyword",
        type: "post",
        data: {
            pageNum: window.pageNum,
            pageSize: window.pageSize,
            keyword: window.keyword
        },
        dataType: "json",
        success: function (result) {
            if (result.result == "SUCCESS") {
                //解析数据
                $("#cretTableBody").empty();//empty 移除里面的所有内容
                //获取数据集合
                var list = result.data.list;
                if (list.length > 0) {
                    //有数据
                    //var list=list[i];
                    for (var i = 0; i < list.length; i++) {
                        var $tr = $('<tr></tr>');
                        var $td1 = $('<td>' + (i + 1) + '</td>');
                        var $td2 = $('<td><input class="itemBox" certid="' + list[i].id + '" type="checkbox"></td>');
                        var $td3 = $('<td>' + list[i].name + '</td>');
                        var $td4 = $('<td></td>');
                        $td4.append('<button  certId="' + list[i].id + '"   type="button" class="btn btn-primary btn-xs editBtn"><i class=" glyphicon glyphicon-pencil"></i><tton>');

                        //删除按钮
                        /*  $td4.append('<button type="button" class="btn btn-danger btn-xs"><i class=" glyphicon glyphicon-remove"></i><tton>');*/
                        $td4.append('<button certId="' + list[i].id + '" type="button" class="btn btn-danger btn-xs removeBtn"><i class="glyphicon glyphicon-remove"></i></button>');
                        $tr.append($td1);
                        $tr.append($td2);
                        $tr.append($td3);
                        $tr.append($td4);

                        $("#cretTableBody").append($tr);
                    }
                    //显示分页导航
                    initPagination(result.data);
                } else {
                    //没数据
                    var $tr = $('<tr></tr>');
                    var $td = $('<td colspan="4">对不起，没有查询到相应的角色！！</td>');
                    $tr.append($td);
                    $("#cretTableBody").append($tr);
                }
            } else {
                layer.msg(result.message + "获取角色数据失败!");
            }
        }
    });
}


//initPagination函数
//声明函数封装导航条初始化操作
function initPagination(pageInfo) {
    // 声明变量存储分页导航条显示时的属性设置
    var paginationProperties = {
        num_edge_entries: 3,        //边缘页数
        num_display_entries: 5,      //主体页数
        callback: pageselectCallback, //回调函数
        items_per_page: window.pageSize,  //每页显示数据数量，就是pageSize
        current_page: (window.pageNum - 1),//当前页页码
        prev_text: "上一页",       //上一页文本
        next_text: "下一页"        //下一页文本
    };

    // 显示分页导航条
    $("#Pagination").pagination(pageInfo.total, paginationProperties);

}

//9．pageselectCallback()函数
// 在每一次点击“上一页”、“下一页”、“页码”时执行这个函数跳转页面
function pageselectCallback(pageIndex, jq) {
    // 将全局变量中的pageNum修改为最新值
    // pageIndex从0开始，pageNum从1开始
    window.pageNum = pageIndex + 1;
    // 调用分页函数重新执行分页
    showPage();
    return false;
}

//关键字查询
$("#searchBtn").click(function () {
    //再单击响应函数中获取文本框输入的数据
    var keyword = $.trim($("#keywordInput").val());
    //验证 输入数据是否有效
    if (keyword.length == 0) {
        //无效 则提示
        layer.msg("请输入关键字!")
        return;
    }
    // 如果有效，赋值给window.keyword
    window.keyword = keyword;
    //调用showPage()重新分页
    showPage();
})

//全选/全不选
$("#summaryBox").click(function () {
    var currentStatus = this.checked;
    $(".itemBox").prop("checked", currentStatus);
})


//检查 itemBox是否被选中   查询出来数据显示在删除的页面
$("#batchRemoveBtn").click(function () {
    var length = $(".itemBox:checked").length;
    if (length == 0) {
        layer.msg("请至少选择一个按钮!");
        return;
    }
    //在全局作用域内创建roleIdArray
    window.certIdArray = new Array();
    //each  输出选中行查出来数据
    $(".itemBox:checked").each(function () {
        var certId = $(this).attr("certid");
        //存到创建的数组里面
        window.certIdArray.push(certId);
    })
//打开模态框
    showRemoveConfirmModal();
})


//显示要删除的数据 使用ajax
function showRemoveConfirmModal() {
    $("#confirmModal").modal("show");

    //显示要删除的数据  转成json格式
    var requestBody = JSON.stringify(window.certIdArray);
    // 2.发送Ajax请求
    var ajaxResult = $.ajax({
        url: "/cert/get/list/by/id/list",
        type: "post",
        data: requestBody,
        contentType: "application/json;charset=UTF-8",
        dataType: "json",
        success: function (ajaxResult) {

            if (ajaxResult.result == "SUCCESS") {
                $("#confirmModalTableBody").empty();
                var certList = ajaxResult.data;//把查询出来的数据传到roleList里面
                //使用for循环显示出来
                for (var i = 0; i < certList.length; i++) {
                    var cert = certList[i];
                    var id = cert.id;
                    var name = cert.name;
                    var $tr = ("<tr><td>" + id + "</td><td>" + name + "</td><tr/>");
                    $("#confirmModalTableBody").append($tr);
                }
            } else {
                layer.msg("数据查询失败!" + ajaxResult.message)
            }
        }
    })
}


//确认删除 绑定  ok事件
$("#confirmModalBtn").click(function () {
    var requestBody = JSON.stringify(window.certIdArray);
    $.ajax({
        url: "/cert/batch/remove",
        type: "post",
        data: requestBody,
        contentType: "application/json;charset=UTF-8",
        dataType: "json",
        success: function (ajaxResult) {
            var result = ajaxResult.result;
            if (result == "SUCCESS") {
                layer.msg("删除成功!");
                showPage();
            } else {
                layer.msg("删除失败!");
            }
            $("#confirmModal").modal("hide");
        }
    })
})


//单条删除
$('#cretTableBody').on("click", ".removeBtn", function () {
    // 获取当前记录的roleId
    var certId = $(this).attr("certId");
    // 存入全局变量数组
    window.certIdArray = new Array();
    window.certIdArray.push(certId);
    // 打开模态框（后续所有操作都和批量删除一样）
    showRemoveConfirmModal();
});

//增加的单机事件
$("#addBtn").click(function () {
    /*  alert("aaa...");*/
    $("#addModal").modal("show");
});


//确定增加
$("#addModalBtn").click(function () {
    //收集文本框内容
    var roleName = $.trim($("#roleNameInput").val());
    if (roleName == "") {
        layer.msg("请输入有效的字符!");
        return;
    }
    $.ajax({
        url: "/cert/save/role",
        type: "post",
        data: {
            "roleName": roleName
        },
        dataType: "json",
        success: function (ajaxResult) {
            var result = ajaxResult.result;
            if (result = "SUCCESS") {
                layer.msg("操作成功!");
                //跳转到最后一页 因为增加成功数据在最后一页
                window.pageNum = 9999999;
                //进行分页
                showPage();
                $("#roleNameInput").empty();
            } else {
                layer.msg(ajaxResult.message);
            }
            //关闭模态框
            $("#addModal").modal("hide");
        }
    })
})


//4．绑定单击响应函数
$("#cretTableBody").on("click", ".editBtn", function () {
    window.certId = $(this).attr("certId");
    var certName = $(this).parents("tr").children("td:eq(2)").text();
    $("#certNameInputEdit").val(certName);
    $("#editModal").modal("show");
})
//6．给“更新”按钮绑定单击响应函数
$("#editModalBtn").click(function () {
    var certName = $.trim($("#certNameInputEdit").val());
    if (certName == null) {
        layer.msg("请输入有效角色名!");
        return;
    }
    $.ajax({
        url: "/cert/update/role",
        type: "post",
        data: {
            "id": window.certId,
            "name": certName
        },
        dataType: "json",
        success: function (ajaxResult) {
            var result = ajaxResult.result;
            if (result == "SUCCESS") {
                layer.msg("修改成功!");
                showPage();
            } else {
                layer.msg("修改失败!");
            }
            $("#editModal").modal("hide");
        }
    })
})
